package com.demo.shardingjdbc.mapper;

import com.demo.shardingjdbc.entity.User;
import org.apache.ibatis.annotations.Mapper;

import java.io.Serializable;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @author hcj
 * @title 用户(User)表数据库访问层
 * @createDate 2018-11-23
 */
@Mapper
public interface UserMapper {

    /**
     * 级联查询
     */
    List<Map> testLeftJoin(User record);
    /**
     * 联合查询【shardingJdbc不支持 union, 也不影响它的强大功能，完全可以用代码来实现union】
     */
    List<Map> testUnion(User record);

    /**
     * 根据实体查询多条记录
     */
    Set<User> selectSelective(User record);
    /**
     * 根据实体查询多条记录
     */
    Set<Map> selectSelectiveAndReturnMap(User record);


    /**
     * 动态新增记录
     */
    int insertSelective(User record);

    /**
     * 更新数据
     */
    Integer updateSelective(User record);

    /**
     * 删除数据
     */
    Integer deleteById(Serializable userId);
}